--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
tests/frontend/lxmfNormalize.test.js 22b4fcce096023ec706bab5449805e34a2912643 (22b4fcce) Text, 3.88 KB
T8b949e// SPDX-License-Identifier: 0BSD
Tff7b72import Tb4b4b4{ Te6edf3describeTb4b4b4, Te6edf3expectTb4b4b4, Te6edf3it Tb4b4b4} Tff7b72from Ta5d6ff"vitest"Tb4b4b4;
Tff7b72import Tb4b4b4{
Te6edf3normalizeLxmfMessageTb4b4b4,
Te6edf3normalizeSidebandCommandKeyTb4b4b4,
Tb4b4b4} Tff7b72from Ta5d6ff"../../meshchatx/src/frontend/components/messages/lxmf/normalize.js"Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"normalizeLxmfMessage"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"oracle: copies msg and leaves created_at when already set"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3msg Tff7b72= Tb4b4b4{ Te6edf3hashTff7b72: Ta5d6ff"abc"Tb4b4b4, Te6edf3created_atTff7b72: Ta5d6ff"2020-01-01T00:00:00.000Z"Tb4b4b4, Te6edf3timestampTff7b72: T79c0ff1Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Te6edf3msgTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{
Te6edf3hashTff7b72: Ta5d6ff"abc"Tb4b4b4,
Te6edf3created_atTff7b72: Ta5d6ff"2020-01-01T00:00:00.000Z"Tb4b4b4,
Te6edf3timestampTff7b72: T79c0ff1Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"delivered"Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Te6edf3msgTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3notTb4b4b4.Te6edf3toBeTb4b4b4(Te6edf3msgTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: derives created_at ISO from unix timestamp when missing"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3msg Tff7b72= Tb4b4b4{ Te6edf3hashTff7b72: Ta5d6ff"abc"Tb4b4b4, Te6edf3timestampTff7b72: T79c0ff1700000000Tb4b4b4, Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Te6edf3msgTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{
Te6edf3hashTff7b72: Ta5d6ff"abc"Tb4b4b4,
Te6edf3timestampTff7b72: T79c0ff1700000000Tb4b4b4,
Te6edf3stateTff7b72: Ta5d6ff"delivered"Tb4b4b4,
Te6edf3created_atTff7b72: Tff7b72new Tffa657DateTb4b4b4(T79c0ff1700000000 Tff7b72* T79c0ff1000Tb4b4b4)Tb4b4b4.Te6edf3toISOStringTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: outbound unknown state becomes outbound"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"unknown" Tb4b4b4}Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"outbound" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"unknown" Tb4b4b4}Tb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"unknown" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{ Te6edf3stateTff7b72: Ta5d6ff"delivered" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: no timestamp and no created_at leaves created_at unset"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeLxmfMessageTb4b4b4(Tb4b4b4{ Te6edf3hashTff7b72: Ta5d6ff"x" Tb4b4b4}Tb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toEqualTb4b4b4(Tb4b4b4{ Te6edf3hashTff7b72: Ta5d6ff"x" Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3describeTb4b4b4(Ta5d6ff"normalizeSidebandCommandKey"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3itTb4b4b4(Ta5d6ff"oracle: empty or whitespace-only keys reject"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Tff7b72undefinedTb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff" "Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: known aliases map to fixed hex keys"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"plugin"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x00"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"PLUGIN"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x00"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"telemetry_request"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x01"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"request"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x01"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"location_request"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x01"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"ping"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x02"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"echo"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x03"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"signal_report"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x04"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: decimal 0-255 becomes zero-padded 0xNN"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x00"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"1"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x01"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"255"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0xff"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"16"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x10"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: decimal outside 0-255 rejects"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"256"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"-1"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: 0x hex forms normalize to lowercase zero-padded"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0x1"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x01"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0x0A"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0x0a"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0xff"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0xff"Tb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0xFF"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Ta5d6ff"0xff"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3itTb4b4b4(Ta5d6ff"oracle: unknown tokens reject"Tb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"nope"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0xGGG"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"0x100"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3expectTb4b4b4(Te6edf3normalizeSidebandCommandKeyTb4b4b4(Ta5d6ff"12.5"Tb4b4b4)Tb4b4b4)Tb4b4b4.Te6edf3toBeTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────